package com.example.demo.application;

import com.example.demo.DemoApplication; // 导入DemoApplication类，假设它是当前应用的入口类
import javafx.application.Application; // 导入JavaFX的Application类，作为JavaFX应用程序的入口点
import javafx.fxml.FXMLLoader; // 导入JavaFX的FXMLLoader类，用于加载FXML文件
import javafx.scene.Scene; // 导入JavaFX的Scene类，用于创建场景
import javafx.stage.Stage; // 导入JavaFX的Stage类，用于创建舞台

import java.io.IOException; // 导入Java的IOException类，用于处理输入输出异常

/**
 * @Author 胡方博
 * @Date 2024-08-03 下午3:57
 *
 * MyApplication类是一个JavaFX应用程序的入口类。
 * 继承自Application类，并实现了start方法来启动应用程序。
 */
public class MyApplication extends Application {

    /**
     * start方法是JavaFX应用程序的入口点。
     * 在该方法中，加载FXML文件并创建应用程序的主舞台（Stage）。
     * @param stage 主舞台对象，用于显示JavaFX的场景
     * @throws IOException 如果加载FXML文件时发生输入输出异常
     */
    @Override
    public void start(Stage stage) throws IOException {
        // 创建FXMLLoader对象，加载指定路径的FXML文件
        FXMLLoader fxmlLoader = new FXMLLoader(DemoApplication.class.getResource("/fxml/hello-view.fxml"));

        // 使用FXMLLoader加载的内容创建一个Scene对象，设置初始大小为320x240像素
        Scene scene = new Scene(fxmlLoader.load(), 320, 240);

        // 设置舞台（Stage）的标题
        stage.setTitle("Hello!");

        // 将创建的Scene设置为舞台的场景
        stage.setScene(scene);

        // 显示舞台（Stage），启动应用程序的UI界面
        stage.show();
    }
}
